package com.net.xpay.common.domain.partner;

import com.net.common.domain.CommonDomain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.math.BigDecimal;

/**
 * 中间表
 * 内部合伙人结算记录
 */
@Getter
@Setter
@NoArgsConstructor
public class PartnerInsiderSettleLog extends CommonDomain {

    @ApiModelProperty(notes = "合伙人id（内部合伙人）")
    private Long partnerId;

    @ApiModelProperty(notes = "商户id")
    private Long userId;

    @ApiModelProperty(notes = "月份")
    private Integer month;

    @ApiModelProperty(notes = "年份")
    private Integer year;

    /**
     * user表
     */
    @ApiModelProperty(notes = "到支付宝服务费收费比例")
    private BigDecimal serviceRatio;

    @ApiModelProperty(notes = "到卡服务费收费比例")
    private BigDecimal bankServiceRatio;

    @ApiModelProperty(notes = "合伙人毛利润分佣比例")
    private BigDecimal benefitRatio;

    /**
     * 总值
     */
    @ApiModelProperty(notes = "总最终服务费 分")
    private Long totalFinalServicePrice;

    @ApiModelProperty(notes = "员工分拥结算金额 元")
    private BigDecimal partnerSettleAmount;

    /**
     * 安全发月统计
     */
    @ApiModelProperty(notes = "批次总金额，单位为元，精确到小数点后两位，取值范围[0.01,9999999999999.99]  必选")
    private BigDecimal totalSafePayTransAmount;

    @ApiModelProperty(notes = "批次总笔数 10 必选")
    private Long totalSafePayCount;

    @ApiModelProperty(notes = "成功金额 单位为元")
    private BigDecimal successSafePayAmount;

    @ApiModelProperty(notes = "成功笔数")
    private BigDecimal successSafePayCount;

    @ApiModelProperty(notes = "失败金额")
    private BigDecimal failedSafePayAmount;

    @ApiModelProperty(notes = "失败笔数")
    private Long failSafePayCount;

    @ApiModelProperty(notes = "成功到卡的金额")
    private BigDecimal successSafePayBankAmount;

    @ApiModelProperty(notes = "成功到卡的笔数")
    private Long successSafePayBankCount;

    @ApiModelProperty(notes = "成功到支付宝的金额")
    private BigDecimal successSafePayAlipayAmount;

    @ApiModelProperty(notes = "成功到支付宝的笔数")
    private Long successSafePayAlipayCount;

    //收费部分
    @ApiModelProperty(notes = "不免费的金额")
    private BigDecimal safePayNotFreeSuccessAmount;

    @ApiModelProperty(notes = "不免费的笔数")
    private Long safePayNotFreeSuccessCount;

    @ApiModelProperty(notes = "不免费部分到卡的金额")
    private BigDecimal safePayNotFreeSuccessBankAmount;

    @ApiModelProperty(notes = "不免费部分到卡的笔数")
    private Long safePayNotFreeSuccessBankCount;

    @ApiModelProperty(notes = "不免费部分成功到支付宝的金额")
    private BigDecimal safePayNotFreeSuccessAlipayAmount;

    @ApiModelProperty(notes = "不免费部分的成功到卡的金额")
    private Long safePayNotFreeSuccessAlipayCount;

    @ApiModelProperty(notes = "一级合伙人总收益 分")
    private Long totalSafePayPartnerBenefit;

    @ApiModelProperty(notes = "二级合伙人总收益 分")
    private Long totalSafePayFatherPartnerBenefit;

    @ApiModelProperty(notes = "平台总收益 分")
    private Long totalSafePayPlatformBenefit;

    @ApiModelProperty(notes = "最终服务费 分")
    private Long safePayFinalServicePrice;
    /**
     * 批量有密月统计
     */
    @ApiModelProperty(notes = "批量有密批次总金额，单位为元，精确到小数点后两位，取值范围[0.01,9999999999999.99]  必选")
    private BigDecimal totalPayTransAmount;

    @ApiModelProperty(notes = "批量有密批次总笔数 10 必选")
    private Long totalPayTransCount;

    @ApiModelProperty(notes = "批量有密成功金额 单位为元")
    private BigDecimal successPayTransAmount;

    @ApiModelProperty(notes = "批量有密成功笔数")
    private Long successPayTransCount;

    @ApiModelProperty(notes = "批量有密失败金额")
    private BigDecimal failedPayTransAmount;

    @ApiModelProperty(notes = "批量有密失败笔数")
    private Long failPayTransCount;

    @ApiModelProperty(notes = "批量有密一级合伙人总收益 分")
    private Long totalPayTransPartnerBenefit;

    @ApiModelProperty(notes = "批量有密二级合伙人总收益 分")
    private Long totalPayTransFatherPartnerBenefit;

    @ApiModelProperty(notes = "批量有密平台总收益 分")
    private Long totalPayTransPlatformBenefit;

    //收费部分
    @ApiModelProperty(notes = "批量有密不免费的成功金额")
    private BigDecimal payTransNotFreeSuccessAmount;

    @ApiModelProperty(notes = "批量有密不免费的成功金额")
    private Long payTransNotFreeSuccessCount;

    @ApiModelProperty(notes = "批量有密最终服务费 分")
    private Long payTransFinalServicePrice;




}
